#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
更新工作量评估表，将所有工作量乘以3倍
"""

import re

def multiply_numbers_by_3(text):
    """
    将文本中的所有数字乘以3
    """
    def multiply_match(match):
        num = int(match.group(1))
        return str(num * 3)

    # 匹配表格中的数字（在|之间的数字，允许前后有空格）
    pattern = r'\|\s*(\d+)\s*\|'
    updated_text = re.sub(pattern, lambda m: f'| {int(m.group(1)) * 3} |', text)

    # 也匹配文本中的数字（用于描述部分）
    pattern_desc = r'(\d+)(人天|人月)'
    def multiply_desc_match(match):
        num = int(match.group(1))
        unit = match.group(2)
        return str(num * 3) + unit

    updated_text = re.sub(pattern_desc, multiply_desc_match, updated_text)

    # 匹配项目周期中的数字
    pattern_period = r'(\d+)-(\d+)个月'
    updated_text = re.sub(pattern_period, lambda m: f'{int(m.group(1)) * 3}-{int(m.group(2)) * 3}个月', updated_text)

    return updated_text

def update_description(text):
    """
    更新文档描述中的相关信息
    """
    # 更新总人天估算
    text = re.sub(r'总人天估算约(\d+)', lambda m: f'总人天估算约{int(m.group(1)) * 3}', text)

    # 更新项目周期描述
    text = re.sub(r'(\d+)-(\d+)个月', lambda m: f'{int(m.group(1)) * 3}-{int(m.group(2)) * 3}个月', text)

    # 更新估算说明
    text = re.sub(r'(\d+)人天', lambda m: f'{int(m.group(1)) * 3}人天', text)
    text = re.sub(r'(\d+)-(\d+)人月', lambda m: f'{int(m.group(1)) * 3}-{int(m.group(2)) * 3}人月', text)

    return text

def main():
    """
    主函数：更新工作量评估表
    """
    md_file = '/Users/xueyuheng/workspace/ubbc/ubbc5/工作量评估表.md'

    try:
        # 读取markdown文件
        with open(md_file, 'r', encoding='utf-8') as f:
            content = f.read()

        print("原始内容中的一些数值：")
        # 找到一些关键数值用于展示
        numbers = re.findall(r'\|(\d+)\|', content)
        print(f"表格中的数值: {numbers[:10]}...")  # 只显示前10个

        # 更新数值
        updated_content = multiply_numbers_by_3(content)

        # 更新描述信息
        updated_content = update_description(updated_content)

        print("\n更新后的数值：")
        updated_numbers = re.findall(r'\|(\d+)\|', updated_content)
        print(f"表格中的数值: {updated_numbers[:10]}...")  # 只显示前10个

        # 保存更新后的文件
        with open(md_file, 'w', encoding='utf-8') as f:
            f.write(updated_content)

        print(f"\n✅ 成功更新 {md_file}")
        print("所有工作量已乘以3倍")

        # 重新生成Excel文件
        print("\n🔄 重新生成Excel文件...")
        import subprocess
        result = subprocess.run(['python3', 'md_to_excel.py'], capture_output=True, text=True)
        if result.returncode == 0:
            print("✅ Excel文件已更新")
        else:
            print("❌ Excel文件更新失败")
            print(result.stderr)

    except Exception as e:
        print(f"❌ 更新过程中出现错误：{e}")

if __name__ == '__main__':
    main()
